МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САП
Використання системи Swing в Java
Методичні матеріали
до лабораторної роботи №6 з курсу:
“Об’єктно-орієнтоване програмування”
для студентів базового напрямку
6.0804 “Комп’ютерні науки”
Затверджено
на засіданні кафедри
“Системи автоматизованого проектування”
Протокол №
від
Львів 2007
Використання системи Swing в Java. Методичні матеріали до лабораторної роботи № 6 з курсу: “Об’єктно-орієнтоване програмування” для студентів базового напрямку 6.0804 “Комп’ютерні науки”.
Укладачі:
Макар В.М., доцент, к.т.н.
Загарюк Р.В., асистент.
Відповідальний за випуск:
Рецензенти:
1. Мета роботи
Метою роботи є придбання навиків програмування графічних додатків Java з використанням системи Swing.
2. Короткі теоретичні відомості
2.1. Основні компоненти Swing
Компоненти Swing можна розділити на наступні типи:
контейнери верхнього рівня (класи JWindow, JFrame, JDialog і JApplet);
спеціалізовані контейнери (класи JInternalFrame, JLayeredPane, JRootPane і JOptionPane);
спільноцільові контейнери (класи JPanel, JScrollPane, JSplitPane, JTabbedPane і JToolBar);
компоненти управління (класи JButton, JCheckBox, JRadioButton, JToggleButton, JComboBox, JList, JMenuBar, JMenu, JMenuItem, JCheckboxMenuItem, JRadioButtonMenuItem, JSeparator і JSlider);
нередаговані інформаційні компоненти (класи JLabel, JProgressBar і JToolTip);
редаговані інформаційні компоненти (класи JColorChooser, JFileChooser, JTable, JTree, JTextField, JPasswordField, JTextArea, JEditorPane і JTextPane).
На відміну від компонентів AWT, компоненти системи Swing здатні працювати тільки по моделі делегування подій.
2.2. Контейнери верхнього рівня і спеціалізовані контейнери
Так само, як і для AWT, для створення вікон графічних додатків використовується не клас JWindow, а клас JFrame (вікна, що створюються класом JWindow не містять найменування вікна і кнопок управління вікном). Додатки з графічним інтерфейсом використовує, принаймні, один фрейм. Аплети також можуть використовувати фрейми. Для створення вікон, які залежать від іншого вікна (наприклад, зникають, коли згортається вікно, в якому вони використовуються) застосовуються діалогові вікна класу JDialog. Аплети, що використовують компоненти Swing, повинні бути підкласами класу JApplet. Будь-яка програма, яка використовує компоненти Swing, містить, принаймні, один контейнер верхнього рівня. Цей контейнер є коренем ієрархії контейнерів, що містять всі компоненти Swing. Як правило, окремий графічний додаток має, принаймні, одну ієрархію контейнерів, в якій коренем є JFrame. Діалогове вікно або аплет також утворюють ієрархію контейнерів, коренем якої є JDialog або JApplet. Наприклад, якщо додаток містить одне головне вікно і два діалогові вікна, то вона містить три ієрархії контейнерів.
2.2.1. Коренева панель
Кожен контейнер верхнього рівня базується на проміжному, прихованому, контейнері, званому кореневою панеллю (root pane). Коренева панель визначена в класі JRootPane. Сама коренева панель звичайно не використовується, а використовуються її компоненти, які коренева панель (клас) надає фрейму (або іншому контейнеру верхнього рівня). Коренева панель містить наступні компоненти:
шарувата панель (layered pane);
панель вмісту (content pane);
рядок меню (menu bar) - необов'язковий компонент;
скляна панель (glass bar).
Єдиним обов'язковим контейнером верхнього рівня є панель вмісту.
2.2.2. Панель вмісту
Панель вмісту містить всі компоненти Swing (кнопки, написи, текстові поля і т.д.). Оскільки для контейнерів верхнього рівня вміст вікна визначається за допомогою JRootPanel і повинно, на відміну від вікон AWT, визначатися уручну, для додавання компонент або установки менеджера компоновки використовуються не методи add() і setLayout(), а методи отримання і установки панелі вмісту:
public Container getContentPane()
і
public void setCo...